﻿using System.Runtime.Serialization;
using System;
namespace ActionService.DataTransferObjects
{
    /// <summary>
    /// Category Data Transfer Object.
    /// 
    /// The purpose of the CustomerTransferObject is to facilitate transport of 
    /// customer business data in a serializable format. Business data is kept in 
    /// publicly accessible auto property members. This class has no methods. 
    /// </summary>
    /// <remarks>
    /// Pattern: Data Transfer Objects.
    /// 
    /// Data Transfer Objects are objects that transfer data between processes, but without behavior.
    /// </remarks>
    [DataContract(Name = "Category", Namespace = "http://www.yourcompany.com/types/")]
    public class CategoryDto
    {
        /// <summary>
        /// Unique category identifier.
        /// The Identity Field Design Pattern. 
        /// </summary>
        [DataMember]
        public int CategoryId { get; set; }

        /// <summary>
        /// Gets or sets the TrafficId.
        /// </summary>
        [DataMember]
        public int TrafficId { get; set; }

        /// <summary>
        /// Gets or sets the TrafficId.
        /// </summary>
        [DataMember]
        public int SupplierId { get; set; }

        /// <summary>
        /// Gets or sets the Date.
        /// </summary>
         [DataMember]
        public DateTime Date { get; set; }

        /// <summary>
        /// Gets or sets the FirstPoint.
        /// </summary>
         [DataMember]
        public int FirstPoint { get; set; }

        /// <summary>
        /// Gets or sets the LastPoint.
        /// </summary>
         [DataMember]
        public int LastPoint { get; set; }

        /// <summary>
        /// Gets or sets the StartTime.
        /// </summary>
         [DataMember]
        public DateTime StartTime { get; set; }

        /// <summary>
        /// Gets or sets the Date.
        /// </summary>
         [DataMember]
        public DateTime EndTime { get; set; }

        /// <summary>
        /// Gets or sets the category description.
        /// </summary>
         [DataMember]
        public string Description { get; set; }

        /// <summary>
        /// Version number. Used in optimistic concurrency decisions.
        /// </summary>
         [DataMember]
        public string Version { get; set; }

        /// <summary>
        /// Gets or sets the Status.
        /// </summary>
         [DataMember]
        public int Status { get; set; }
    }
}
